#ifndef __SIMPLEDOCKWINDOW__
#define __SIMPLEDOCKWINDOW__

#include "includes/includes.h"

#include "components/MainComponent.h"

#include "lookandfeel/SimpleDockLookAndFeel.h"

//==============================================================================
/** 
    This is the top-level window that we'll pop up. Inside it, we'll create and
    show a component from the MainComponent.cpp file (you can open this file using
    the Jucer to edit it).
*/
class SimpleDockWindow  : public ResizableWindow
{
public:
    //==============================================================================
    SimpleDockWindow() 
        : ResizableWindow (T("Simple Dock"),
							Colours::transparentWhite, 
						      true)
    {
        // Create an instance of our main content component, and add it 
        // to our window.

		setDropShadowEnabled(false);

		this->setLookAndFeel(new SimpleDockLookAndFeel());

        MainComponent* const contentComponent = new MainComponent(0);

        setContentComponent (contentComponent, true, true);

		//uncomment
		setTopLeftPosition(Desktop::getInstance().getMainMonitorArea().getWidth()/2 - getWidth()/2, 150 - getHeight());

		//test -> delete
//		setSize(800, 600);
//		setTopLeftPosition(Desktop::getInstance().getMainMonitorArea().getWidth()/2 - getWidth()/2, 100);
  
		setVisible (true);

		setResizable(false, false);

		setAlwaysOnTop(true);

    }

    ~SimpleDockWindow()
    {
        // (the content component will be deleted automatically, so no need to do it here)
    }
	
	void userTriedToCloseWindow()
	{
		JUCEApplication::quit();
	}
    //==============================================================================
    void closeButtonPressed()
    {
        // When the user presses the close button, we'll tell the app to quit. This 
        // window will be deleted by our HelloWorldApplication::shutdown() method
        // 
        JUCEApplication::quit();
    }

	int  getDesktopWindowStyleFlags () const  
	{
		int flags = ResizableWindow::getDesktopWindowStyleFlags();

//		flags &= ~(ComponentPeer::windowAppearsOnTaskbar);

		return flags;
	}

	void mouseEnter(const MouseEvent& e)
	{
	
	}

	void mouseExit(const MouseEvent& e)
	{
	
	}

private:
	
};


#endif